A job (or a process) commonly refers to a single instance of a program in computing systems. The software responsible for managing this is known as a job scheduler. Because such computing systems tend to have many jobs active at any one time, the scheduler provides a management setting that allow the user to stop/pause/restart jobs, and to set priorities on jobs (so that job A might get more ‘timeslices’ per cycle than other jobs).
The scheduling algorithm of a scheduler is the method by which processes are given access to system resources, usually processor time. This is usually done to load balance a system effectively. The algorithm used may be as simple as round-robin in which each process is given equal time (for instance 1 ms, usually between 1 ms and 100 ms) in a cycling list. So, process A executes for 1 ms, then process B, then process C, then back to process A. More advanced algorithms take into account process priority, the importance of the process, or the prior resource utilization of a job. This allows some processes to use more time than other processes. For example, a job that used a lot of processing time in the recent past may likely need a lot of processing time again in the near future.